package com.im.project.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.im.project.entity.User;
import com.im.project.entity.dto.*;
import com.im.project.entity.vo.CaptchaVo;
import com.im.project.entity.vo.LoginVo;
import com.im.project.entity.vo.UserVo;

import javax.servlet.http.HttpServletResponse;

/**
 * 用户 服务层接口
 *
 * @author yunZhouJiaDi
 */
public interface UserService extends IService<User> {

    Boolean sendMailCode(SendMailCodeDto sendMailCodeDto);

    Boolean register(RegisterDto registerDto);

    CaptchaVo captcha(HttpServletResponse response);

    LoginVo login(LoginDto loginDto);

    Boolean resetPassword(ResetPasswordDto resetPasswordDto);

    Boolean logout();

    UserVo queryCurrentUserDetail();

    UserVo updateCurrentUser(UpdateUserDto updateUserDto);

    Boolean updateUserPassword(UpdateUserPasswordDto updateUserPasswordDto);

    void pullMessage(String userId);

}
